package cn.itsource.mq._02_workqueues;
import cn.itsource.mq.util.ConnectionUtil;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
/**
 * @description: 消息生产者
 */
public class ProducerTest {
    //队列名称
    public static final String QUEUE_WORKQUEUES = "workqueues";
    /**
     * 步骤：
     * 1、创建连接
     * 2、创建信道
     * 3、创建队列
     * 4、准备消息
     * 5、发送消息
     */
    public static void main(String[] args) throws Exception {
        //1、创建连接
        //写在try里面，含义是：到时候会自动关闭连接
        try(Connection connection = ConnectionUtil.getConnection()){
            //2、创建信道
            Channel channel = connection.createChannel();
            //3、创建队列
            /**
             * 声明队列，如果RabbitMQ中没有此队列将自动创建
             * param1:队列名称
             * param2:是否持久化
             * param3:队列是否独占此连接
             * param4:队列不再使用时是否自动删除此队列
             * param5:队列参数
             */
            channel.queueDeclare(QUEUE_WORKQUEUES, true, false, false, null);
            //发送消息
            for (int i = 0; i < 20; i++) {
                channel.basicPublish("", QUEUE_WORKQUEUES, null, ("这是一个Work Queues消息" + i).getBytes());
            }
            System.out.println("消息发送完毕");
        }
    }
}